home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_fileinput.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  5KB  |  184 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. '''
  5. Tests for fileinput module.
  6. Nick Mathewson
  7. '''
  8. from test.test_support import verify, verbose, TESTFN
  9. import sys
  10. import os
  11. import re
  12. from StringIO import StringIO
  13. from fileinput import FileInput
  14.  
  15. def writeTmp(i, lines):
  16.     name = TESTFN + str(i)
  17.     f = open(name, 'w')
  18.     f.writelines(lines)
  19.     f.close()
  20.     return name
  21.  
  22. pat = re.compile('LINE (\\d+) OF FILE (\\d+)')
  23.  
  24. def remove_tempfiles(*names):
  25.     for name in names:
  26.         
  27.         try:
  28.             os.unlink(name)
  29.         continue
  30.         continue
  31.  
  32.     
  33.  
  34.  
  35. def runTests(t1, t2, t3, t4, bs = 0, round = 0):
  36.     start = 1 + round * 6
  37.     if verbose:
  38.         print '%s. Simple iteration (bs=%s)' % (start + 0, bs)
  39.     
  40.     fi = FileInput(files = (t1, t2, t3, t4), bufsize = bs)
  41.     lines = list(fi)
  42.     fi.close()
  43.     verify(len(lines) == 31)
  44.     verify(lines[4] == 'Line 5 of file 1\n')
  45.     verify(lines[30] == 'Line 1 of file 4\n')
  46.     verify(fi.lineno() == 31)
  47.     verify(fi.filename() == t4)
  48.     if verbose:
  49.         print '%s. Status variables (bs=%s)' % (start + 1, bs)
  50.     
  51.     fi = FileInput(files = (t1, t2, t3, t4), bufsize = bs)
  52.     s = 'x'
  53.     while s and s != 'Line 6 of file 2\n':
  54.         s = fi.readline()
  55.     verify(fi.filename() == t2)
  56.     verify(fi.lineno() == 21)
  57.     verify(fi.filelineno() == 6)
  58.     verify(not fi.isfirstline())
  59.     verify(not fi.isstdin())
  60.     if verbose:
  61.         print '%s. Nextfile (bs=%s)' % (start + 2, bs)
  62.     
  63.     fi.nextfile()
  64.     verify(fi.readline() == 'Line 1 of file 3\n')
  65.     verify(fi.lineno() == 22)
  66.     fi.close()
  67.     if verbose:
  68.         print '%s. Stdin (bs=%s)' % (start + 3, bs)
  69.     
  70.     fi = FileInput(files = (t1, t2, t3, t4, '-'), bufsize = bs)
  71.     savestdin = sys.stdin
  72.     
  73.     try:
  74.         sys.stdin = StringIO('Line 1 of stdin\nLine 2 of stdin\n')
  75.         lines = list(fi)
  76.         verify(len(lines) == 33)
  77.         verify(lines[32] == 'Line 2 of stdin\n')
  78.         verify(fi.filename() == '<stdin>')
  79.         fi.nextfile()
  80.     finally:
  81.         sys.stdin = savestdin
  82.  
  83.     if verbose:
  84.         print '%s. Boundary conditions (bs=%s)' % (start + 4, bs)
  85.     
  86.     fi = FileInput(files = (t1, t2, t3, t4), bufsize = bs)
  87.     verify(fi.lineno() == 0)
  88.     verify(fi.filename() == None)
  89.     fi.nextfile()
  90.     verify(fi.lineno() == 0)
  91.     verify(fi.filename() == None)
  92.     if verbose:
  93.         print '%s. Inplace (bs=%s)' % (start + 5, bs)
  94.     
  95.     savestdout = sys.stdout
  96.     
  97.     try:
  98.         fi = FileInput(files = (t1, t2, t3, t4), inplace = 1, bufsize = bs)
  99.         for line in fi:
  100.             line = line[:-1].upper()
  101.             print line
  102.         
  103.         fi.close()
  104.     finally:
  105.         sys.stdout = savestdout
  106.  
  107.     fi = FileInput(files = (t1, t2, t3, t4), bufsize = bs)
  108.     for line in fi:
  109.         verify(line[-1] == '\n')
  110.         m = pat.match(line[:-1])
  111.         verify(m != None)
  112.         verify(int(m.group(1)) == fi.filelineno())
  113.     
  114.     fi.close()
  115.  
  116.  
  117. def writeFiles():
  118.     global t1, t2, t3, t4
  119.     t1 = []([], [ 'Line %s of file 1\n' % (i + 1) for i in range(15) ])
  120.     t2 = []([], [ 'Line %s of file 2\n' % (i + 1) for i in range(10) ])
  121.     t3 = []([], [ 'Line %s of file 3\n' % (i + 1) for i in range(5) ])
  122.     t4 = []([], [ 'Line %s of file 4\n' % (i + 1) for i in range(1) ])
  123.  
  124. for round, bs in ((0, 0), (1, 30)):
  125.     
  126.     try:
  127.         writeFiles()
  128.         runTests(t1, t2, t3, t4, bs, round)
  129.     finally:
  130.         remove_tempfiles(t1, t2, t3, t4)
  131.  
  132.  
  133. if verbose:
  134.     print '13. 0-byte files'
  135.  
  136.  
  137. try:
  138.     t1 = writeTmp(1, [
  139.         ''])
  140.     t2 = writeTmp(2, [
  141.         ''])
  142.     t3 = writeTmp(3, [
  143.         'The only line there is.\n'])
  144.     t4 = writeTmp(4, [
  145.         ''])
  146.     fi = FileInput(files = (t1, t2, t3, t4))
  147.     line = fi.readline()
  148.     verify(line == 'The only line there is.\n')
  149.     verify(fi.lineno() == 1)
  150.     verify(fi.filelineno() == 1)
  151.     verify(fi.filename() == t3)
  152.     line = fi.readline()
  153.     verify(not line)
  154.     verify(fi.lineno() == 1)
  155.     verify(fi.filelineno() == 0)
  156.     verify(fi.filename() == t4)
  157.     fi.close()
  158. finally:
  159.     remove_tempfiles(t1, t2, t3, t4)
  160.  
  161. if verbose:
  162.     print "14. Files that don't end with newline"
  163.  
  164.  
  165. try:
  166.     t1 = writeTmp(1, [
  167.         'A\nB\nC'])
  168.     t2 = writeTmp(2, [
  169.         'D\nE\nF'])
  170.     fi = FileInput(files = (t1, t2))
  171.     lines = list(fi)
  172.     verify(lines == [
  173.         'A\n',
  174.         'B\n',
  175.         'C',
  176.         'D\n',
  177.         'E\n',
  178.         'F'])
  179.     verify(fi.filelineno() == 3)
  180.     verify(fi.lineno() == 6)
  181. finally:
  182.     remove_tempfiles(t1, t2)
  183.  
  184.